package com.zh.business.service.web.user;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zh.zhbootcommon.entity.user.Permission;

import java.util.List;

/**
 * <p>
 * 权限/菜单信息表 服务类
 * </p>
 *
 * @author JueDream
 * @since 2021-08-04
 */
public interface IDPermissionService extends IService<Permission> {

    /**
     * 权限菜单信息分页
     * @param page
     * @param limit
     * @param pName
     * @return
     */
    Page<Permission> queryPermissionPage(Integer page, Integer limit, String pName);

    /**
     * 权限菜单信息所有
     * @param pName
     * @return
     */
    List<Permission> queryPermissionList(String pName);

    /**
     * 查询用户菜单
     * @param userId
     * @param type 0-递归 1-非递归
     * @return
     */
    List<Permission> queryMenuByUser(Integer userId, Integer type);

    /**
     * 查询所有菜单-递归处理
     * @param
     * @return
     */
    List<Permission> queryMenu();

    /**
     * 查询所有菜单
     * @param
     * @return
     */
    List<Permission> queryMenuAll();

    /**
     * 查询用户菜单
     * @param roleIds
     * @return
     */
    List<Permission> queryMenuByRole(List<Integer> roleIds);

    /**
     * 权限菜单信息单个
     * @param pId
     * @return
     */
    Permission queryPermissionOne(Integer pId);


    /**
     * 权限菜单信息逻辑删除
     *
     * @param pId
     * @return
     */
    boolean removePermission(Integer pId);

}
